package com.demo.redis.config.jedis;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * Jedis本身是线程不安全的，并且频繁创建和销毁连接会有性能损耗，因此推荐使用功能jedis连接池代替jedis直连方式
 */
public class JedisConnectionFactory {
    private static final JedisPool JEDIS_POOL;
    static {
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        //最大连接数
        jedisPoolConfig.setMaxTotal(8);
        //最大空闲连接
        jedisPoolConfig.setMaxIdle(8);
        //最小空闲连接
        jedisPoolConfig.setMinIdle(0);
        //设置最长等待时间，ms
        jedisPoolConfig.setMaxWaitMillis(1000);
        JEDIS_POOL = new JedisPool(jedisPoolConfig, "192.168.184.128", 6379, 1000);
    }

    public static Jedis getJedis() {
        return JEDIS_POOL.getResource();
    }
}
